local filename = "agentcmd.lua"

local skynet = require "skynet"

local filelog = require "filelog"

-- 每个函数都需要用的这个 service，要知道调用者是谁，这样可以直接使用调用者的其他函数
local service = nil
-- 放到table里面，只是为了方便外界更改这个service
local AgentCMD = {
	service = nil
}

function AgentCMD.process(session, source, event, ...)
	-- 这段只是为了方便写代码一下，不想每个函数调用前都要加上
	-- local service = AgentCMD.service
	if not service then
		service = AgentCMD.service
	end
	local f = AgentCMD[event] 
	if f == nil then
		filelog.sys_error(filename.." Agent AgentCMD.process invalid event:"..event)
		return nil
	end
	skynet.retpack(f(...))
end

function AgentCMD.create_session(conf)
	return service:create_session(conf)
end

function AgentCMD.close(...)
	service:agentexit(true)
	service:exit_service()
	return true
end

return AgentCMD